home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1997 / MacHack 1997.toast / Hacks / Hacks ’97 / Warrior’s Progress / source code / Source / Libraries / Menus / Low Level / MenuObject.h < prev    next >
Encoding:
Text File  |  1997-06-28  |  1.4 KB  |  66 lines  |  [TEXT/CWIE]

  1. // MenuObject.h
  2.  
  3. #ifndef MenuObject_h
  4. #define MenuObject_h
  5.  
  6. #ifndef ResourceID_h
  7. #include "ResourceID.h"
  8. #endif
  9. #ifndef MenuItem_h
  10. #include "MenuItem.h"
  11. #endif
  12. #ifndef Assert_h
  13. #include "Assert.h"
  14. #endif
  15. #ifndef Range_h
  16. #include "Range.h"
  17. #endif
  18. #ifndef MenuManagerUser_h
  19. #include "MenuManagerUser.h"
  20. #endif
  21.  
  22. class MenuObject: public MenuManagerUser
  23.   {
  24.     private:
  25.         MenuHandle menu;
  26.         uint16 length;
  27.         const MenuID id;
  28.         
  29.     public:
  30.         MenuObject( MenuID, ConstPString title );
  31.         MenuObject( MenuHandle );
  32.         MenuObject( ResourceID );
  33.     
  34.         uint16 Length() const                            { return length; }
  35.         
  36.         MenuID ID() const                                    { return id; }
  37.         MenuHandle Handle() const                        { return menu; }
  38.         operator MenuHandle() const                    { return menu; }
  39.         
  40.         MenuItem operator[]( uint16 i )
  41.             { Assert( i < length ); return MenuItem( menu, i+1 ); }
  42.         
  43.         void InsertItem( uint16 index, ConstPString text );
  44.         void AppendItem( ConstPString text );
  45.         
  46.         void InsertDivider( uint16 index );
  47.         void AppendDivider();
  48.         
  49.         void InsertResources( uint16 index, ResType );
  50.         void AppendResources( ResType type );
  51.         
  52.         void DeleteItem( uint16 index );
  53.         void DeleteItems( URange16 items );
  54.         
  55.         bool Enabled() const                    { return ( (*menu)->enableFlags & 1 ) != 0; }
  56.         void Enable();
  57.         void Disable();
  58.         void EnableIfItemsEnabled();
  59.         
  60.         bool TailEnabled() const            { return ( (*menu)->enableFlags & 0x80000000 ) != 0; }
  61.         void EnableTail();
  62.         void DisableTail();
  63.   };
  64.  
  65. #endif
  66.